package com.research.domain.entity;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.common.annotation.Excel;
import com.common.core.domain.BaseEntity;

/**
 * 科研平台-研究机构对象 biz_research_unit
 *
 * @author hst
 * @date 2025-03-05
 */
@Data
@TableName("biz_research_unit")
public class ResearchUnit extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 唯一标识 */
    private String id;

    /** 机构名称 */
    @Excel(name = "机构名称")
    private String name;

    /** 机构编号 */
    @Excel(name = "机构编号")
    private String code;

    /** 负责人 */
    @Excel(name = "负责人")
    private String charger;

    /** 联系人 */
    @Excel(name = "联系人")
    private String contacts;

    /** 对应人事单位 */
    //@Excel(name = "对应人事单位")
    private String hrUnitId;

    @TableField(exist = false)
    @Excel(name = "对应人事单位")
    private String hrUnit;

    /** 挂靠单位 */
    //@Excel(name = "挂靠单位")
    private String upUnitId;

    @TableField(exist = false)
    @Excel(name = "挂靠单位")
    private String upUnit;

    private String subjectClassId;
    private String subjectId;
    private String isSta;

    /** 机构级别ID */
    //@Excel(name = "机构级别ID")
    private String levelId;

    @TableField(exist = false)
    @Excel(name = "机构级别")
    private String level;

    /** 电话 */
    @Excel(name = "电话")
    private String tel;

    /** 传真 */
    @Excel(name = "传真")
    private String fax;

    /** 地址 */
    @Excel(name = "地址")
    private String address;

    /** 邮编 */
    @Excel(name = "邮编")
    private String postalCode;

    /** 邮箱 */
    @Excel(name = "邮箱")
    private String email;

    /** 网址 */
    @Excel(name = "网址")
    private String website;

    /** 附件 */
    //@Excel(name = "附件")
    private String fileIds;

    /** 机构类别ID */
    //@Excel(name = "机构类别ID")
    private String researchTypeId;

    @TableField(exist = false)
    @Excel(name = "机构类别")
    private String researchType;

    /** 批准建设部门 */
    @Excel(name = "批准建设部门")
    private String approveDept;

    /** 批复筹建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "批复筹建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date approveDate;

    /** 是否对外开放 */
    @Excel(name = "是否对外开放", dictType = "yes_no")
    private String isOpen;

    /** 是否属于合建 */
    @Excel(name = "是否属于合建", dictType = "yes_no")
    private String isCombined;

    /** 主要技术领域 */
    @Excel(name = "主要技术领域")
    private String techField;

    /** 主要学科领域 */
    @Excel(name = "主要学科领域")
    private String subjectField;

    /** 备注 */
    //@Excel(name = "备注")
    private String intro;

    /** 审核状态 */
    @Excel(name = "审核状态", dictType = "bpm_process_instance_status")
    private String checkStatus;

    /** 审核时间 */
    //@Excel(name = "审核时间")
    private String checkDate;

    /** 审核人 */
    //@Excel(name = "审核人")
    private String checker;

    /** 创建人ID */
    @TableField(fill = FieldFill.INSERT,value="CREATEUSERID")
    //@Excel(name = "创建人ID")
    private String createUserId;

    /** 最后编辑人ID */
    @TableField(fill = FieldFill.UPDATE,value="LASTEDITUSERID")
    //@Excel(name = "最后编辑人ID")
    private String lastEditUserId;

    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT,value="CREATEDATE")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    //@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createDate;

    /** 最后编辑时间 */
    @TableField(fill = FieldFill.UPDATE,value="LASTEDITDATE")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    //@Excel(name = "最后编辑时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date lastEditDate;

    /** 创建人名称 */
    @TableField(fill = FieldFill.INSERT,value="CREATEUSERNAME")
    //@Excel(name = "创建人名称")
    private String createUserName;

    /** 最后编辑人名称 */
    @TableField(fill = FieldFill.UPDATE,value="LASTEDITUSERNAME")
    //@Excel(name = "最后编辑人名称")
    private String lastEditUserName;

    /** 联系人ID */
    //@Excel(name = "联系人ID")
    private String contactsId;

    /** 负责人ID */
    //@Excel(name = "负责人ID")
    private String chargerId;

    /** 验收通过时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "验收通过时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date unitCheckDate;

    /** 成立时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "成立时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date unitCreateDate;

    /** 平台简介 */
    //@Excel(name = "平台简介")
    private String platformSummary;

    private String unitId;

    /** 上轮评估时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    //@Excel(name = "上轮评估时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date prevEvaluateTime;

    /** 上轮评估结果 */
    //@Excel(name = "上轮评估结果")
    private String prevEvaluateResult;

    /** 导入数据待完善状态 */
    //@Excel(name = "导入数据待完善状态")
    private String completeDataStatus;

    /** 流程实例ID */
    //@Excel(name = "流程实例ID")
    private String processInstanceId;

    @TableField(exist = false)
    private String personNum;
    @TableField(exist = false)
    private String projectNum;
    @TableField(exist = false)
    private String productNum;
    @TableField(exist = false)
    private String honorNum;

    @TableField(exist = false)
    private String appointYear;
    @TableField(exist = false)
    private String registrationStatus;
    @TableField(exist = false)
    private String educationStatId;

    @Override
    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setCode(String code)
    {
        this.code = code;
    }

    public String getCode()
    {
        return code;
    }
    public void setCharger(String charger)
    {
        this.charger = charger;
    }

    public String getCharger()
    {
        return charger;
    }
    public void setContacts(String contacts)
    {
        this.contacts = contacts;
    }

    public String getContacts()
    {
        return contacts;
    }
    public void setHrUnitId(String hrUnitId)
    {
        this.hrUnitId = hrUnitId;
    }

    public String getHrUnitId()
    {
        return hrUnitId;
    }
    public void setUpUnitId(String upUnitId)
    {
        this.upUnitId = upUnitId;
    }

    public String getUpUnitId()
    {
        return upUnitId;
    }
    public void setSubjectClassId(String subjectClassId)
    {
        this.subjectClassId = subjectClassId;
    }

    public String getSubjectClassId()
    {
        return subjectClassId;
    }
    public void setSubjectId(String subjectId)
    {
        this.subjectId = subjectId;
    }

    public String getSubjectId()
    {
        return subjectId;
    }
    public void setIsSta(String isSta)
    {
        this.isSta = isSta;
    }

    public String getIsSta()
    {
        return isSta;
    }
    public void setLevelId(String levelId)
    {
        this.levelId = levelId;
    }

    public String getLevelId()
    {
        return levelId;
    }
    public void setTel(String tel)
    {
        this.tel = tel;
    }

    public String getTel()
    {
        return tel;
    }
    public void setFax(String fax)
    {
        this.fax = fax;
    }

    public String getFax()
    {
        return fax;
    }
    public void setAddress(String address)
    {
        this.address = address;
    }

    public String getAddress()
    {
        return address;
    }
    public void setPostalCode(String postalCode)
    {
        this.postalCode = postalCode;
    }

    public String getPostalCode()
    {
        return postalCode;
    }
    public void setEmail(String email)
    {
        this.email = email;
    }

    public String getEmail()
    {
        return email;
    }
    public void setWebsite(String website)
    {
        this.website = website;
    }

    public String getWebsite()
    {
        return website;
    }
    public void setFileIds(String fileIds)
    {
        this.fileIds = fileIds;
    }

    public String getFileIds()
    {
        return fileIds;
    }
    public void setResearchTypeId(String researchTypeId)
    {
        this.researchTypeId = researchTypeId;
    }

    public String getResearchTypeId()
    {
        return researchTypeId;
    }
    public void setApproveDept(String approveDept)
    {
        this.approveDept = approveDept;
    }

    public String getApproveDept()
    {
        return approveDept;
    }
    public void setApproveDate(Date approveDate)
    {
        this.approveDate = approveDate;
    }

    public Date getApproveDate()
    {
        return approveDate;
    }
    public void setIsOpen(String isOpen)
    {
        this.isOpen = isOpen;
    }

    public String getIsOpen()
    {
        return isOpen;
    }
    public void setIsCombined(String isCombined)
    {
        this.isCombined = isCombined;
    }

    public String getIsCombined()
    {
        return isCombined;
    }
    public void setTechField(String techField)
    {
        this.techField = techField;
    }

    public String getTechField()
    {
        return techField;
    }
    public void setSubjectField(String subjectField)
    {
        this.subjectField = subjectField;
    }

    public String getSubjectField()
    {
        return subjectField;
    }
    public void setIntro(String intro)
    {
        this.intro = intro;
    }

    public String getIntro()
    {
        return intro;
    }
    public void setCheckStatus(String checkStatus)
    {
        this.checkStatus = checkStatus;
    }

    public String getCheckStatus()
    {
        return checkStatus;
    }
    public void setCheckDate(String checkDate)
    {
        this.checkDate = checkDate;
    }

    public String getCheckDate()
    {
        return checkDate;
    }
    public void setChecker(String checker)
    {
        this.checker = checker;
    }

    public String getChecker()
    {
        return checker;
    }
    @Override
    public void setCreateUserId(String createUserId)
    {
        this.createUserId = createUserId;
    }

    public String getCreateUserId()
    {
        return createUserId;
    }
    @Override
    public void setLastEditUserId(String lastEditUserId)
    {
        this.lastEditUserId = lastEditUserId;
    }

    public String getLastEditUserId()
    {
        return lastEditUserId;
    }
    @Override
    public void setCreateDate(Date createDate)
    {
        this.createDate = createDate;
    }

    public Date getCreateDate()
    {
        return createDate;
    }
    @Override
    public void setLastEditDate(Date lastEditDate)
    {
        this.lastEditDate = lastEditDate;
    }

    public Date getLastEditDate()
    {
        return lastEditDate;
    }
    @Override
    public void setCreateUserName(String createUserName)
    {
        this.createUserName = createUserName;
    }

    public String getCreateUserName()
    {
        return createUserName;
    }
    @Override
    public void setLastEditUserName(String lastEditUserName)
    {
        this.lastEditUserName = lastEditUserName;
    }

    public String getLastEditUserName()
    {
        return lastEditUserName;
    }
    public void setContactsId(String contactsId)
    {
        this.contactsId = contactsId;
    }

    public String getContactsId()
    {
        return contactsId;
    }
    public void setChargerId(String chargerId)
    {
        this.chargerId = chargerId;
    }

    public String getChargerId()
    {
        return chargerId;
    }
    public void setUnitCheckDate(Date unitCheckDate)
    {
        this.unitCheckDate = unitCheckDate;
    }

    public Date getUnitCheckDate()
    {
        return unitCheckDate;
    }
    public void setUnitCreateDate(Date unitCreateDate)
    {
        this.unitCreateDate = unitCreateDate;
    }

    public Date getUnitCreateDate()
    {
        return unitCreateDate;
    }
    public void setPlatformSummary(String platformSummary)
    {
        this.platformSummary = platformSummary;
    }

    public String getPlatformSummary()
    {
        return platformSummary;
    }
    public void setUnitId(String unitId)
    {
        this.unitId = unitId;
    }

    public String getUnitId()
    {
        return unitId;
    }
    public void setPrevEvaluateTime(Date prevEvaluateTime)
    {
        this.prevEvaluateTime = prevEvaluateTime;
    }

    public Date getPrevEvaluateTime()
    {
        return prevEvaluateTime;
    }
    public void setPrevEvaluateResult(String prevEvaluateResult)
    {
        this.prevEvaluateResult = prevEvaluateResult;
    }

    public String getPrevEvaluateResult()
    {
        return prevEvaluateResult;
    }
    public void setCompleteDataStatus(String completeDataStatus)
    {
        this.completeDataStatus = completeDataStatus;
    }

    public String getCompleteDataStatus()
    {
        return completeDataStatus;
    }
    public void setProcessInstanceId(String processInstanceId)
    {
        this.processInstanceId = processInstanceId;
    }

    public String getProcessInstanceId()
    {
        return processInstanceId;
    }

    public void setAppointYear(String appointYear)
    {
        this.appointYear = appointYear;
    }
    public String getAppointYear()
    {
        return appointYear;
    }
    public void setRegistrationStatus(String registrationStatus)
    {
        this.registrationStatus = registrationStatus;
    }
    public String getRegistrationStatus()
    {
        return registrationStatus;
    }
    public void setEducationStatId(String educationStatId)
    {
        this.educationStatId = educationStatId;
    }
    public String getEducationStatId()
    {
        return educationStatId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("name", getName())
                .append("code", getCode())
                .append("charger", getCharger())
                .append("contacts", getContacts())
                .append("hrUnitId", getHrUnitId())
                .append("upUnitId", getUpUnitId())
                .append("subjectClassId", getSubjectClassId())
                .append("subjectId", getSubjectId())
                .append("isSta", getIsSta())
                .append("levelId", getLevelId())
                .append("tel", getTel())
                .append("fax", getFax())
                .append("address", getAddress())
                .append("postalCode", getPostalCode())
                .append("email", getEmail())
                .append("website", getWebsite())
                .append("fileIds", getFileIds())
                .append("researchTypeId", getResearchTypeId())
                .append("approveDept", getApproveDept())
                .append("approveDate", getApproveDate())
                .append("isOpen", getIsOpen())
                .append("isCombined", getIsCombined())
                .append("techField", getTechField())
                .append("subjectField", getSubjectField())
                .append("intro", getIntro())
                .append("checkStatus", getCheckStatus())
                .append("checkDate", getCheckDate())
                .append("checker", getChecker())
                .append("createUserId", getCreateUserId())
                .append("lastEditUserId", getLastEditUserId())
                .append("createDate", getCreateDate())
                .append("lastEditDate", getLastEditDate())
                .append("createUserName", getCreateUserName())
                .append("lastEditUserName", getLastEditUserName())
                .append("contactsId", getContactsId())
                .append("chargerId", getChargerId())
                .append("unitCheckDate", getUnitCheckDate())
                .append("unitCreateDate", getUnitCreateDate())
                .append("platformSummary", getPlatformSummary())
                .append("unitId", getUnitId())
                .append("prevEvaluateTime", getPrevEvaluateTime())
                .append("prevEvaluateResult", getPrevEvaluateResult())
                .append("completeDataStatus", getCompleteDataStatus())
                .append("processInstanceId", getProcessInstanceId())
                .toString();
    }
}
